/**
 * �˷����Ǹ���wps_sdk.js���ĵ��÷�����װ
 * �ɲ��մ˶���
 * @param {*} funcs     ������WPS�������ڲ�����ķ���������JSON��ʽ���ȷ��������ٲ�����
 */

var bUseHttps = false;

function _WpsInvoke(funcs) {
    var info = {};
    info.funcs = funcs;
    var func = bUseHttps ? WpsInvoke.InvokeAsHttps : WpsInvoke.InvokeAsHttp
    func(WpsInvoke.ClientType.wps, // �������
        "WpsOAAssist", // ���������wps�ͻ��˼��صļ��صĲ������Ӧ
        "dispatcher", // ���������ڣ���wps�ͻ��˼��صļ��صĲ�������Ӧ����ϸ���������
        info, // ���ݸ����������
        function (result) { // ���ûص���statusΪ0Ϊ�ɹ��������Ǵ���
            if (result.status) {
                if (bUseHttps && result.status == 100) {
                    WpsInvoke.AuthHttpesCert('�����Ժ�򿪵���ҳ�У����"�߼�" => "����ǰ��"�������Ȩ��')
                    return;
                }
                alert(result.message)

            } else {
                console.log(result.response)
                showresult(result.response)
            }
        })
}
/**
 * �÷�����װ�˷��͸�WPS�ͻ��˵����󣬲���Ҫ�û�ȥʵ��
 * ������Ϣ��WpsInvoke.RegWebNotify��type��name,callback��
 * WPS�ͻ��˷�����Ϣ�� wps.OAAssist.WebNotify��message��
 * @param {*} type �������Ӧ�Ĳ������
 * @param {*} name �������Ӧ������
 * @param {func} callback ���յ�WPS�ͻ��˵���Ϣ��Ļص�����
 */
WpsInvoke.RegWebNotify(WpsInvoke.ClientType.wps, "WpsOAAssist", function (messageText) {
    var span = window.parent.document.getElementById("webnotifyspan")
    span.innerHTML = messageText
})


/**
 * ����WPS������ķ�������ֵ
 *
 * @param {*} resultData
 */


function showresult(resultData) {
    let json = eval('(' + resultData + ')')
    switch (json.message) {
        case "GetDocStatus": {
            let docstatus = json.docstatus
            if (typeof docstatus != "undefined") {
                let str = "�ĵ�����״̬��" +
                    docstatus.saved +
                    "\n�ĵ�������" +
                    docstatus.words +
                    "\n�ĵ�ҳ����" + docstatus.pages
                alert(str)
            }
        }
    }
}
/**
 * ����ҳ������Դ�����ʾ�ı������壬�������������
 */
var _wps = {}

// �˴����£����Ƕ���ǰ��ҳ����ε���WPS�����������������������ο�

function newDoc() {
    _WpsInvoke([{
        "NewDoc": {}
    }]) // NewDoc������Ӧ��OA����dispatcher֧�ֵķ�����
}

_wps['newDoc'] = {
    action: newDoc,
    code: _WpsInvoke.toString() + "\n\n" + newDoc.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����WPS���ֺ�,�½�һ���հ�doc�ĵ�\n\
\n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�в���е�js����NewDoc,�½�һ���հ�doc\n\
    funcs����˵��:\n\
        NewDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
"
}

function GetDemoPath(fileName) {

    var url = document.location.host;
    return document.location.protocol + "//" + url + "/file/" + fileName;
}

function GetUploadPath() {
    var url = document.location.host;
    return document.location.protocol + "//" + url + "/Upload";
}

function GetDemoPngPath() {
    var url = document.location.toString();
    url = decodeURI(url);
    if (url.indexOf("/") != -1) {
        url = url.substring(0, url.lastIndexOf("/"));
    }
    if (url.length !== 0)
        url = url.concat("/WPS.png");

    if (!String.prototype.startsWith) {
        String.prototype.startsWith = function (searchString, position) {
            position = position || 0;
            return this.indexOf(searchString, position) === position;
        };
    }

    if (url.startsWith("file:///"))
        url = url.substr("file:///".length);
    return url;
}

function openDoc() {

    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    var uploadPath = prompt("�������ĵ��ϴ�·��:", GetUploadPath())
    var uploadFieldName = prompt("�������ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶΣ�", "�Զ����ֶ�")
    var backupPath = prompt("�������ĵ�����·��:")

    _WpsInvoke([{
        "OpenDoc": {
            "docId": "123", // �ĵ�ID
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "uploadFieldName": uploadFieldName,
            "picPath": GetDemoPngPath(),
            "copyUrl": backupPath,
            "userName": "��������"
        }
    }]) // OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����
}

_wps['openDoc'] = {
    action: openDoc,
    code: _WpsInvoke.toString() + "\n\n" + openDoc.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·���������ĵ��ϴ�·����������Ĳ�����Ч�ķ���˵�ַ�����޷�ʹ�ñ����ϴ����ܡ�\n\
    ��WPS���ֺ�,�������ĵ�·�����ز��򿪶�Ӧ���ĵ������潫�Զ��ϴ�ָ����������ַ\n\
\n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
        OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
            docId �ĵ�ID��OA�������Ա���ĵ�����Ϣ�������������ĵ�\n\
            uploadPath �����ĵ��ϴ�·��\n\
            fileName �򿪵��ĵ�·��\n\
            uploadFieldName �ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶ�\n\
            picPath ����ͼƬ��·��\n\
            copyUrl ���ݵķ�����·��\n\
            userName ����wpsҪ��ʾ��OA�û���\n\
"
}

function onlineEditDoc() {
    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    var uploadPath = prompt("�������ĵ��ϴ�·��:", GetUploadPath())
    var uploadFieldName = prompt("�������ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶΣ�", "�Զ����ֶ�")
    _WpsInvoke([{
        "OnlineEditDoc": {
            "docId": "123", // �ĵ�ID
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "uploadFieldName": uploadFieldName,
            "buttonGroups": "btnSaveAsFile,btnImportDoc,btnPageSetup,btnInsertDate,btnSelectBookmark", //���ι��ܰ�ť
            "userName": "��������"
        }
    }]) // onlineEditDoc������Ӧ��OA����dispatcher֧�ֵķ�����
}

_wps['onlineEditDoc'] = {
    action: onlineEditDoc,
    code: _WpsInvoke.toString() + "\n\n" + onlineEditDoc.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·���������ĵ��ϴ�·����������Ĳ�����Ч�ķ���˵�ַ�����޷�ʹ�ñ����ϴ����ܡ�\n\
    ��WPS���ֺ�,�������ĵ�·�����ߴ򿪶�Ӧ���ĵ������潫�Զ��ϴ�ָ����������ַ\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
        onlineEditDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
            docId �ĵ�ID\n\
            uploadPath �����ĵ��ϴ�·��\n\
            fileName �򿪵��ĵ�·��\n\
            uploadFieldName �ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶ�\n\
            buttonGroups ���ε�OA���ֹ��ܰ�ť\n\
            userName ����wpsҪ��ʾ��OA�û���\n\
"
}

function openRevision() {
    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    var uploadPath = prompt("�������ĵ��ϴ�·��:")
    _WpsInvoke([{
        "OpenDoc": {
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "userName": '����', //�û���
            "revisionCtrl": {
                "bOpenRevision": true,
                "bShowRevision": true
            }
        }
    }])
}

_wps['openRevision'] = {
    action: openRevision,
    code: _WpsInvoke.toString() + "\n\n" + openRevision.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����������󣬴�WPS���ֺ󣬴�ָ���ĵ��������޶����ܣ�����ʾ�޶�\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        docId �ĵ�ID\n\
        userName �û��������õ�ǰ�༭�û���\n\
        fileName �򿪵��ĵ�·��\n\
        revisionCtrl �޶����ܿ��Ʋ���\n\
"
}

function closeRevision() {
    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    var uploadPath = prompt("�������ĵ��ϴ�·��:")
    _WpsInvoke([{
        "OpenDoc": {
            "docId": "123", // �ĵ�ID
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "userName": '����', //�û���
            "revisionCtrl": {
                "bOpenRevision": false,
                "bShowRevision": false
            }
        }
    }])
}

_wps['closeRevision'] = {
    action: closeRevision,
    code: _WpsInvoke.toString() + "\n\n" + closeRevision.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����������󣬴�WPS���ֺ󣬴�ָ���ĵ������ر��޶�����\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        docId �ĵ�ID\n\
        userName �û��������õ�ǰ�༭�û���\n\
        fileName �򿪵��ĵ�·��\n\
        revisionCtrl �޶����ܿ��Ʋ���\n\
"
}

function protectOpen() {
    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    var uploadPath = prompt("�������ĵ��ϴ�·��:")
    _WpsInvoke([{
        "OpenDoc": {
            "docId": "123", // �ĵ�ID
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "openType": { //�ĵ��򿪷�ʽ
                // �ĵ��������ͣ�-1�������ñ���ģʽ��0��ֻ�������������ݽ����޶���
                // 1��ֻ����������ע��2��ֻ�����޸Ĵ�����(��ֹ��������)��3��ֻ��
                "protectType": 3,
                "password": "123456"
            }
        }
    }])
}

_wps['protectOpen'] = {
    action: protectOpen,
    code: _WpsInvoke.toString() + "\n\n" + protectOpen.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����������󣬴�WPS���ֺ󣬴�ʹ�ñ���ģʽָ���ĵ�\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        uploadPath �����ĵ��ϴ�·��\n\
        docId �ĵ�ID\n\
        fileName �򿪵��ĵ�·��\n\
        openType �ĵ��򿪷�ʽ���Ʋ��� protectType��1�������ñ���ģʽ��0��ֻ�������������ݽ����޶���\n\
        \t\t1��ֻ����������ע��2��ֻ�����޸Ĵ�����(��ֹ��������)��3��ֻ�� passwordΪ����\n\
"
}

function openWithPassWd() {
    var filePath = prompt("��������ļ�·�������ػ���url����")
    var docPassword = prompt("�������ĵ�������:")
    var uploadPath = prompt("�������ĵ��ϴ�·��:")
    _WpsInvoke([{
        "OpenDoc": {
            "docId": "123", // �ĵ�ID
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "docPassword": {
                "docPassword": docPassword // �ĵ�����
            }
        }
    }])
}

_wps['openWithPassWd'] = {
    action: openWithPassWd,
    code: _WpsInvoke.toString() + "\n\n" + openWithPassWd.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����������󣬴�WPS���ֺ�ʹ��ָ�������ָ�������ĵ�\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        uploadPath �����ĵ��ϴ�·��\n\
        docId �ĵ�ID\n\
        fileName �򿪵��ĵ�·��\n\
        docPassword �ĵ�����\n\
"
}

function insertRedHeader() {
    var filePath = prompt("��������ļ�·�������Ϊ����Ի�ĵ��׺죺", GetDemoPath("����.docx"))
    var templateURL = prompt("�������ͷģ��·�������ػ���url��:", GetDemoPath("��ͷ�ļ�.docx"))
    if (filePath != '' && filePath != null) {
        _WpsInvoke([{
            "OnlineEditDoc": {
                "docId": "123", // �ĵ�ID
                "fileName": filePath,
                "insertFileUrl": templateURL,
                "bkInsertFile": 'Content', //��ͷģ����������ĵ�λ����ǩ��
                "buttonGroups": "btnSaveAsFile,btnImportDoc,btnPageSetup,btnInsertDate,btnSelectBookmark" //���ι��ܰ�ť
            }
        }])
    } else {
        _WpsInvoke([{
            "InsertRedHead": {
                "insertFileUrl": templateURL,
                "bkInsertFile": 'Content' //��ͷģ����������ĵ�λ����ǩ��
            }
        }])
    }
}

_wps['insertRedHeader'] = {
    action: insertRedHeader,
    code: _WpsInvoke.toString() + "\n\n" + insertRedHeader.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����������󣬴�WPS���ֺ󣬴�ָ���ĵ���Ȼ��ʹ��ָ����ͷģ��Ը��ĵ������׺�ͷ\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        docId �ĵ�ID\n\
        fileName �򿪵��ĵ�·��\n\
        insertFileUrl ָ���ĺ�ͷģ��\n\
        bkInsertFile ��ͷģ�������ĵ�λ����ǩ��\n\
    InsertRedHead������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        insertFileUrl ָ���ĺ�ͷģ��\n\
        bkInsertFile ��ͷģ�������ĵ�λ����ǩ��\n\
"
}

function fillTemplate() {
    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����2.docx"))
    var templatePath = prompt("��������Ҫ�������ݵ������ַ:", "http://127.0.0.1:3888/getTemplateData")

    _WpsInvoke([{
        "OpenDoc": {
            "docId": "c2de1fcd1d3e4ac0b3cda1392c36c9", // �ĵ�ID
            "fileName": filePath,
            "templateDataUrl": templatePath
        }
    }]) // OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����
}

_wps['fillTemplate'] = {
    action: fillTemplate,
    code: _WpsInvoke.toString() + "\n\n" + fillTemplate.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·���������ĵ��ϴ�·������WPS���ֺ�,�������ĵ�·�����ز��򿪶�Ӧ���ĵ���\n\
    ���Զ���ģ���������ȡģ�����ݲ����õ��ĵ���\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
        OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
            docId �ĵ�ID��OA�������Ա���ĵ�����Ϣ�������������ĵ�\n\
            fileName �򿪵��ĵ�·��\n\
            templateDataUrl ģ��ķ�����·��\n\
"
}

function convertDoc() {
    var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    var uploadPath = prompt("�������ĵ�ת�����ϴ�·��:", GetUploadPath())

    _WpsInvoke([{
        "OpenDoc": {
            "docId": "123", // �ĵ�ID
            "uploadPath": uploadPath, // �����ĵ��ϴ�·��
            "fileName": filePath,
            "suffix": ".pdf",
            "uploadWithAppendPath": "1" //��suffix����ʹ�ã������־λ����
        }
    }]) // OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����
}

_wps['convertDoc'] = {
    action: convertDoc,
    code: _WpsInvoke.toString() + "\n\n" + convertDoc.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·���������ĵ�ת�����ϴ�·����������Ĳ�����Ч�ķ���˵�ַ�����޷�ʹ�ñ����ϴ����ܡ�\n\
    ��WPS���ֺ�,�������ĵ�·�����ز��򿪶�Ӧ���ĵ���ת���꽫�Զ��ϴ�ָ����������ַ\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
        OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
            docId �ĵ�ID��OA�������Ա���ĵ�����Ϣ�������������ĵ�\n\
            uploadPath �����ĵ��ϴ�·��\n\
            fileName �򿪵��ĵ�·��\n\
            suffix ת������\n\
            uploadWithAppendPath ����ʱһ��ת����Ŀ���ʽ\n\
"
}

function taskPaneBookMark() {
    var filePath = prompt("������򿪴���ǩ�ļ�·�������ػ���url����", GetDemoPath("����.docx"))
    _WpsInvoke([{
        "taskPaneBookMark": {
            "fileName": filePath,
            "userName": "��������"
        }
    }]) // taskPaneBookMark������Ӧ��OA����dispatcher֧�ֵķ�����
}

_wps['taskPaneBookMark'] = {
    action: taskPaneBookMark,
    code: _WpsInvoke.toString() + "\n\n" + taskPaneBookMark.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·�����ĵ��е���ǩ������OA���ֵ�Taskpane����ʾ������\n\
    ���TaskPane�е���ǩ�����Զ���ת����ǩ����Ӧ���ļ��е�λ�ã����Taskpane��F2�����Կ�Taskpane�е�htmlԴ�롣\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    taskPaneBookMark ������Ӧ��OA����dispatcher֧�ֵķ�����\n\
        fileName �ĵ���·��\n\
        userName ����wpsҪ��ʾ��OA�û���\n\
"
}

function exitWPS() {
    _WpsInvoke([{
        "ExitWPS": {}
    }])
}

_wps['exitWPS'] = {
    action: exitWPS,
    code: _WpsInvoke.toString() + "\n\n" + exitWPS.toString(),
    detail: "\n\
  ˵����\n\
    �����ť���ر��Ѵ򿪵�WPS\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��֪ͨWPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    ExitWPS ������Ӧ��OA����dispatcher֧�ֵķ�����\n\
"
}

function getDocStatus() {
    _WpsInvoke([{
        "GetDocStatus": {}
    }])
}

_wps['getDocStatus'] = {
    action: getDocStatus,
    code: _WpsInvoke.toString() + "\n\n" + getDocStatus.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����ȡ��ĵ���״̬\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��֪ͨWPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
    GetDocStatus ������Ӧ��OA����dispatcher֧�ֵķ�����\n\
"
}

//----����д������ط��� ��Щ�����������С�����д��������İ汾������ Start--------
/**
 * �жϵ�ǰOS�Ƿ���Linuxϵͳ
 *
 * @returns
 */
function checkOSisLinux() {
    if (detectOS() == "Linux") {
        return true
    } else {
        alert("�˷�������WPS Linux�ض��汾֧��")
    }
}
/**
 * �½�һ��ʹ�ù���д���򿪵Ĺ���
 *
 */
function newOfficialDocument() {
    if (checkOSisLinux()) {
        _WpsInvoke([{
            "NewOfficialDocument": {
                "isOfficialDocument": true
            }
        }]) // NewOfficialDocument������Ӧ��OA����dispatcher֧�ֵķ�����
    }
}

_wps['newOfficialDocument'] = {
    action: newOfficialDocument,
    code: _WpsInvoke.toString() + "\n\n" + newOfficialDocument.toString(),
    detail: "\n\
  ˵����\n\
    �����ť����WPS����д����,�½�һ������\n\
\n\
  ����ʹ�ã�\n\
    ҳ������ť�� ͨ��wps�ͻ���Э��������WPS�� ����oaassist����� ִ�в���е�js����NewOfficialDocument, �½�һ��Ĭ��ģ��Ĺ���\ n\
    funcs����˵��:\n\
        NewOfficialDocument������Ӧ��OA����dispatcher֧�ֵķ�����\ n\
"
}

/**
 * ��һ��ʹ�ù���д���򿪵Ĺ���
 */
function openOfficialDocument() {
    if (checkOSisLinux()) {
        var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("��������.wps"))
        var uploadPath = prompt("�������ĵ��ϴ�·��:", GetUploadPath())
        var uploadFieldName = prompt("�������ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶΣ�", "�Զ����ֶ�")
        var backupPath = prompt("�������ĵ�����·��:")
        _WpsInvoke([{
            "OpenDoc": {
                "docId": "123", // �ĵ�ID
                "uploadPath": uploadPath, // �����ĵ��ϴ�·��
                "fileName": filePath,
                "uploadFieldName": uploadFieldName,
                "picPath": GetDemoPngPath(),
                "copyUrl": backupPath,
                "userName": "��������"
            }
        }]) // OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����
    }
}
_wps['openOfficialDocument'] = {
    action: openOfficialDocument,
    code: _WpsInvoke.toString() + "\n\n" + openOfficialDocument.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·���������ĵ��ϴ�·����������Ĳ�����Ч�ķ���˵�ַ�����޷�ʹ�ñ����ϴ����ܡ�\n\
    ��WPS���ֺ�,�������ĵ�·�����ز��򿪶�Ӧ���ĵ������潫�Զ��ϴ�ָ����������ַ\n\
\n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
        OpenDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
            docId �ĵ�ID��OA�������Ա���ĵ�����Ϣ�������������ĵ�\n\
            uploadPath �����ĵ��ϴ�·��\n\
            fileName �򿪵��ĵ�·��\n\
            uploadFieldName �ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶ�\n\
            picPath ����ͼƬ��·��\n\
            copyUrl ���ݵķ�����·��\n\
            userName ����wpsҪ��ʾ��OA�û���\n\
"
}
/**
 * ���߲���ش�һ��ʹ�ù���д���򿪵Ĺ���
 */
function onlineEditOfficialDocument() {
    if (checkOSisLinux()) {
        var filePath = prompt("��������ļ�·�������ػ���url����", GetDemoPath("��������.wps"))
        var uploadPath = prompt("�������ĵ��ϴ�·��:", GetUploadPath())
        var uploadFieldName = prompt("�������ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶΣ�", "�Զ����ֶ�")
        _WpsInvoke([{
            "OnlineEditDoc": {
                "docId": "123", // �ĵ�ID
                "uploadPath": uploadPath, // �����ĵ��ϴ�·��
                "fileName": filePath,
                "uploadFieldName": uploadFieldName,
                "buttonGroups": "btnSaveAsFile,btnImportDoc,btnPageSetup,btnInsertDate,btnSelectBookmark", //���ι��ܰ�ť
                "userName": "��������"
            }
        }]) // onlineEditDoc������Ӧ��OA����dispatcher֧�ֵķ�����
    }
}

_wps['onlineEditOfficialDocument'] = {
    action: onlineEditOfficialDocument,
    code: _WpsInvoke.toString() + "\n\n" + onlineEditOfficialDocument.toString(),
    detail: "\n\
  ˵����\n\
    �����ť������Ҫ�򿪵��ĵ�·���������ĵ��ϴ�·����������Ĳ�����Ч�ķ���˵�ַ�����޷�ʹ�ñ����ϴ����ܡ�\n\
    ��WPS���ֺ�,�������ĵ�·�����ߴ򿪶�Ӧ���ĵ������潫�Զ��ϴ�ָ����������ַ\n\
    \n\
  ����ʹ�ã�\n\
    ҳ������ť��ͨ��wps�ͻ���Э��������WPS������oaassist�����ִ�д��������е�ָ��\n\
    funcs������Ϣ˵��:\n\
        OnlineEditDoc������Ӧ��OA����dispatcher֧�ֵķ�����\n\
            docId �ĵ�ID\n\
            uploadPath �����ĵ��ϴ�·��\n\
            fileName �򿪵��ĵ�·��\n\
            uploadFieldName �ĵ��ϴ���ҵ��ϵͳʱ�Զ����ֶ�\n\
            buttonGroups ���ε�OA���ֹ��ܰ�ť\n\
            userName ����wpsҪ��ʾ��OA�û���\n\
"
}

/**
 * ����HTMLҳ���ϵİ�ť�����¼���ʵ�֣�������������ģ�ʹ���Լ�ϰ�ߵķ�ʽ����������
 */
window.onload = function () {
    var btns = document.getElementsByClassName("btn");

    for (var i = 0; i < btns.length; i++) {
        btns[i].onclick = function (event) {
            document.getElementById("blockFunc").style.visibility = "visible";
            var btn2 = document.getElementById("demoBtn");
            btn2.innerText = this.innerText;
            document.getElementById("codeDes").innerText = _wps[this.id].detail.toString()
            document.getElementById("code").innerText = _wps[this.id].code.toString()
            var onBtnAction = _wps[this.id].action

            document.getElementById("demoBtn").onclick = function () { //IE��֧�ּ�ͷ��������Ϊͨ��д��
                var xhr = new WpsInvoke.CreateXHR();
                xhr.onload = function () {
                    onBtnAction()
                }
                xhr.onerror = function () {
                    alert("��ȷ�ϱ��ط����(StartupServer.js)������״̬")
                    return
                }
                xhr.open('get', 'http://127.0.0.1:3888/FileList', true)
                xhr.send()
            }

            hljs.highlightBlock(document.getElementById("code"));
        }
    }
}
/**
 * ������ϵͳ
 *
 * @returns Win10 | Win7 | WinVista | Win2003 | WinXP | Win2000 | Linux | Unix | Mac
 */
function detectOS() {
    var sUserAgent = navigator.userAgent;
    var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
    var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");
    if (isMac) return "Mac";
    var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
    if (isUnix) return "Unix";
    var isLinux = (String(navigator.platform).indexOf("Linux") > -1);
    if (isLinux) return "Linux";
    if (isWin) {
        var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;
        if (isWin2K) return "Win2000";
        var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1;
        if (isWinXP) return "WinXP";
        var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;
        if (isWin2003) return "Win2003";
        var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;
        if (isWinVista) return "WinVista";
        var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;
        if (isWin7) return "Win7";
        var isWin10 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 10") > -1;
        if (isWin10) return "Win10";
    }
    return "other";
}